package bch.maven.plugin.guava;

import com.google.common.collect.LinkedListMultimap;
import com.google.common.collect.Multimap;

import java.util.Collection;

public class LinkedListMultimapExample {
    public static void main(String[] args) {
        // 创建 LinkedListMultimap
        Multimap<String, String> multimap = LinkedListMultimap.create();

        // 添加元素
        multimap.put("fruit", "apple");
        multimap.put("fruit", "banana");
        multimap.put("fruit", "apple");  // ✅ 允许重复
        multimap.put("color", "red");
        multimap.put("color", "green");
        multimap.put("color", "red");    // ✅ 允许重复

        // 打印完整内容
        System.out.println("完整 multimap：" + multimap);

        // 获取某个 key 的所有值（有顺序）
        Collection<String> fruits = multimap.get("fruit");
        System.out.println("fruit 对应的所有值：" + fruits);

        // 删除单个值（只删除第一个匹配的）
        multimap.remove("fruit", "apple");
        System.out.println("删除一个 apple 后：" + multimap.get("fruit"));

        // 删除 key 下所有值
        multimap.removeAll("color");
        System.out.println("删除 color 后 multimap：" + multimap);

        // 查看插入顺序（entrySet 会按插入顺序遍历）
        System.out.println("所有 entry（保持插入顺序）：");
        multimap.entries().forEach(System.out::println);
    }
}
